package com.quick.springbootquicky.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.groups.Default;
import lombok.Data;

import java.util.Date;

/**
 * 文章分类信息
 */
@Data
public class Category {

    @NotNull(groups = Update.class)//说明只有在更新时候才会校验id参数是否有值
    private Integer id;// 'ID',
    @NotEmpty//说明不管插入还是更新都要校验参数是否有值
    private String categoryName;//'分类名称',
    @NotEmpty//说明不管插入还是更新都要校验参数是否有值
    private String categoryAlise;//'分类别名',
    private Integer createUser;//'创建人id',

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") //日期格式输出
    private Date createTime;// '创建时间',
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") //日期格式输出
    private Date updateTime;//'更新时间',


    /**
     * 校验分组：为了方便不同的方法请求时，要不要对这个参数进行校验
     * 如果某个校验项没有指定分组，默认属于Default分组
     * 分组之间可以继承，A extends B ，那么A 中拥有B中所有的校验项
     * 使用方式，在调用方法的@Validated中添加value值说明：@Validated(Category.Update.class),表明只有在update组中才会校验这个参数是否有值
     */
    public interface Add extends Default {}
    public interface Update extends Default{}
}
